﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace OBL1_DiseñoDeAplicaciones.Interfaz
{
    public partial class AgregarSubdivision : Form
    {
        private const string _Tarea = "TAREA";
        private const string _Subproyecto = "SUBPROYECTO";
        
        private string _nombreNodo;

        private string _codigoNodo;

        private string _tagNodo; //que es? tarea o subproyecto

        private string _costo; //solo si es tarea

        public string Costo
        {
            get { return _costo; }
            set { _costo = value; }
        }

        public string NombreNodo
        {
            get { return _nombreNodo; }
            set { _nombreNodo = value; }
        }
       
        public string CodigoNodo
        {
            get { return _codigoNodo; }
            set { _codigoNodo = value; }
        }
        
        public string TagNodo
        {
            get { return _tagNodo; }
            set { _tagNodo = value; }
        }
        
        public AgregarSubdivision(bool esTarea)
        {
            InitializeComponent();
            if (esTarea)
            {
                _tagNodo = _Tarea;
            }
            else {
                _tagNodo = _Subproyecto;
                pnlCostoTarea.Visible = false;
            }
        }

        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            bool continuar = true;
            lblDescRequerida.Visible = false;
            lblCostoRequerido.Visible = false;
            lblErrores.Text = string.Empty;

            if (!txtDescripcion.Text.Equals(string.Empty))
            {
                NombreNodo = txtDescripcion.Text;
            }
            else {
                lblErrores.Text = "Debe agregar una descripción " + (_tagNodo.Equals(_Tarea) ? "a la tarea." : "al subproyecto.");
                lblDescRequerida.Visible = true;
                continuar = false;
            }
            if (continuar && _tagNodo.Equals(_Tarea))
            {
                if (!txtCosto.Text.Equals(string.Empty))
                {
                    try
                    {
                        double.Parse(txtCosto.Text.Trim());
                        Costo = txtCosto.Text.Trim();
                    }
                    catch (FormatException)
                    {
                        lblErrores.Text = "El costo de la tarea debe ser numérico.";
                        lblCostoRequerido.Visible = true;
                        continuar = false;
                    }
                }
                else
                {
                    lblErrores.Text = "Debe agregar un costo a la tarea.";
                    lblCostoRequerido.Visible = true;
                    continuar = false;
                }
            }
            if (continuar)
            {
                DialogResult = DialogResult.OK;
                this.Dispose();
            }
            else {
                lblErrores.Left = (this.Width - lblErrores.Width) / 2;
            }
        }

        private void BtnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult = DialogResult.Cancel;
            this.Dispose();
        }
    }
}
